
const { commonSuccess } = require('../../utils/util.js')
const { url } = require('../../config/index.js') // 接口请求地址
const { rePayOrder, getYue, yuePay } = require('../../common/js/payInOrder.js') // 订单内发起支付
const MD5 = require('../../utils/md5.js') // MD5

Page({
  // 页面的初始数据
  data: {
    windowHeight: 600, // scroll-view 高度
    onLoading: false, // 是否在加载数据
    hasData: true, // 是否还有数据
    nowPage: 1, // 当前页码
    orderList: [], // 订单列表
    // 改需求-改需求-改需求-改需求
    userYue: 0, // 用户余额
    showChooseWay: false, // 是否展示选择支付 
    needPayAmount: 0, // 需要支付的金额
    info: null, // 当前这一单的信息
    inPay: false, // 是否正在支付中
    focusPwd: false, // 是否focus 密码框
    yuePayInfo: null, // 最终给余额支付使用的数据
  },
  
  btnClick (e) {
    let info = e.currentTarget.dataset.info
    console.warn(info)
    wx.navigateTo({
      url: "/pages/evaluate/evaluate?orderid=" + info.ORDER_ID + '&shopname=' + info.SHOP_NAME
    })
  },
  // 点击支付
  payThis(e) {
    let info = e.currentTarget.dataset.info
    // 正在支付中
    if(this.data.inPay) return
    this.setData({ inPay: true})
    
    // 余额(每次点击支付时获取当前余额)
    getYue().then((data) => {
      this.setData({
        userYue: Number(data),// 设置当前余额
        info: info, // 当前这一单的信息
        showChooseWay: true, // 打开弹窗
        needPayAmount: Number(info.TOTAL_PRICE) // 这一单的总价
      })
    }).catch(err => {
      this.setData({ inPay: false })
      console.error(err)
    })

  },
  // 关闭密码窗（弹窗）
  closePwd () {
    this.setData({
      info: null, // 当前这一单的信息
      inPay: false, // 是否正在支付中
      focusPwd: false, // 是否focus 密码框
      yuePayInfo: null // 最终给余额支付使用的数据
    })
  },
  // 关闭支付(弹窗)
  closeOrderPay () {
    this.setData({ 
      showChooseWay: false,
      inPay: false
    })
  },
  // 确认支付(弹窗)
  okToPay (e) {
    this.setData({ showChooseWay: false})
    let payWay = e.detail.payway == 'wx' ? 2 : 9
    console.log(payWay)
    this.emitPay(payWay)
  },
  // 密码输入完成
  inputEnd (e) {
    let pwd = e.detail
    // console.log(pwd)
    yuePay(this.data.yuePayInfo, pwd)
    .then(data => {
      console.log(data)
      if (data.STATUS_CODE == 1){
        // 支付成功 //
        this.setData({
          info: null, // 当前这一单的信息
          inPay: false, // 是否正在支付中
          focusPwd: false, // 是否focus 密码框
          yuePayInfo: null // 最终给余额支付使用的数据
        })
        commonSuccess()
      }
    })
    .catch(err => {
      console.warn(err)
    })
  },
  // 触发支付
  emitPay(payWay) {
    /**
     * userId 用户id, orderid 订单id, cashVolNo 代金券编号 payWay 支付方式
     */
    rePayOrder(wx.getStorageSync('userInfo').USER_ID, this.data.info.ORDER_ID, this.data.info.VOUCHERS_NO, payWay)
    .then(res => {
      if(payWay == 2){
        // 微信支付成功
        // this.getOrder()
        commonSuccess()
      } else if (payWay == 9) {
        // 唤出密码窗
        console.warn(res.data) // yu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yueyu\\yue
        this.setData({ 
          focusPwd: true,
          yuePayInfo: res.data
        })
      }
    })
    .catch(res => {
      this.setData({inPay: false})
      wx.showModal({
        title: '提示',
        showCancel: false,
        content: '支付失败',
      })
    })
  },
  // 订单详情
  jumpToDetail (e) {
    let orderid = e.currentTarget.dataset.info.ORDER_ID // 订单id
    console.log(orderid)
    wx.navigateTo({
      url: '/pages/orderDetail/orderDetail?orderid=' + orderid
    })
  },
  // 获取订单
  getOrder () {
    if (this.data.onLoading) return
    this.setData({ onLoading: true })
    wx.showLoading({mask: true})
    wx.request({
      url: url + 'ServOrderNew/getUserOrderList.action',
      method: 'POST',
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      data: {
        USER_ID: wx.getStorageSync('userInfo').USER_ID,
        TYPE: 'TOTAL_ORDER',
        PAGE_NO: this.data.nowPage
      },
      success: res => {
        console.log(res.data)
        this.setData({ onLoading: false })
        wx.hideLoading()
        if (res.data.STATUS_CODE == 1) {
          if (res.data.RESULT_DATA.length == 0) {
            this.setData({
              hasData: false // 无数据了
            })
            return
          }
          let resData = res.data.RESULT_DATA
          
          for (let j = 0; j < resData.length; j++) {
            let plus = 0
            for (let i = 0; i < resData[j].DETAIL_LIST.length; i++){
              plus += resData[j].DETAIL_LIST[i].QUANTITY
            }
            resData[j].number = plus
            // console.warn(plus)
          }

          if (this.data.nowPage == 1) {
            this.setData({
              orderList: resData
            })
          } else {
            let now = this.data.orderList.concat(resData)
            this.setData({
              orderList: now
            })
          }

        }
      }
    })  
  },
  tiggerLoad () {
    if (!this.data.hasData || this.data.onLoading) return // 没数据了 || 正在加载
    let nextPage = this.data.nowPage + 1
    this.setData({ nowPage: nextPage })
    this.getOrder()
  },
  // 计算scroll高度
  computeHeight () {
    wx.getSystemInfo({
      success: res => {
        console.log(res)
        this.setData({ windowHeight: res.windowHeight }) // 在调试模式下，真机获取的高度比开发工具少48，这48为tabBar的高度
      },
    })
  },
  // 生命周期函数--监听页面加载
  onLoad: function (options) {

  },
  // 生命周期函数--监听页面初次渲染完成
  onReady: function () {
  },
  // 生命周期函数--监听页面显示
  onShow: function () {
    this.computeHeight()
    this.getOrder()
    // this.setData({
    //   showChooseWay: false
    // })
  },
  // 生命周期函数--监听页面隐藏
  onHide: function () {
  }
})
